// Database.cs // assumes connection Pooling ! // assumes Transacion Manager is grouping connections correctly ! using System.Data; using System.Data.SqlClient; using System.Runtime.CompilerServices; using System.EnterpriseServices; using System.Reflection; //Registration details. //COM+ application name as it appears in the COM+ catalog. [assembly: ApplicationName("Database")] [assembly: ApplicationActivation(ActivationOption.Library)] //Strong name for assembly. [assembly: AssemblyKeyFileAttribute("components/Database.snk")] [assembly: AssemblyVersion("1.0.0.0")] namespace Database { [Transaction(TransactionOption.Required)] public class Database : ServicedComponent { private static string connStr = "server=(local)\\NetSDK;database=dwarf;Trusted_Connection=yes"; public DataSet RunSql(string sql){ SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter sqlAdapter = new SqlDataAdapter(sql,conn); DataSet ds = new DataSet(); sqlAdapter.Fill(ds); conn.Close(); return ds; } public DataSet RunSql(string sql, SqlParameter[] prams){ SqlConnection conn = new SqlConnection(connStr); SqlCommand cmd = new SqlCommand(sql,conn); foreach (SqlParameter parameter in prams) cmd.Parameters.Add(parameter); SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); sqlAdapter.Fill(ds); conn.Close(); return ds; } public static SqlParameter MakeParam(string name, SqlDbType type, object value, bool nullIfZero) { SqlParameter param = new SqlParameter(name, type); if((type == SqlDbType.Int) && (nullIfZero == true) && (((int)value) == 0)){ param.Value = System.DBNull.Value; }else{ param.Value = value; } return param; } public static SqlParameter MakeParam(string name, SqlDbType type, object value) { return MakeParam(name,type,value,false); } } }